package base.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * #see https://blog.csdn.net/shengzhu1/article/details/81271409
 *
 *
 *
 * 如果一个注解内仅仅只有一个名字为 value 的属性时，应用这个注解时可以直接接属性值填写到括号内
 * public @interface Check {
 * String value();
 * }
 *@Target的 取值
 * ElementType.ANNOTATION_TYPE 可以给一个注解进行注解
 ElementType.CONSTRUCTOR 可以给构造方法进行注解
 ElementType.FIELD 可以给属性进行注解
 ElementType.LOCAL_VARIABLE 可以给局部变量进行注解
 ElementType.METHOD 可以给方法进行注解
 ElementType.PACKAGE 可以给一个包进行注解
 ElementType.PARAMETER 可以给一个方法内的参数进行注解
 ElementType.TYPE 可以给一个类型进行注解，比如类、接口、枚举
 */
@Retention(RetentionPolicy.RUNTIME)
//表示类，接口上的注解
@Target(ElementType.TYPE)
public @interface TestClassAnnotation {
    int id();
    String name() default "zhangsan";
}
